import History from './history'
// 继承History类
export default class HashHistory extends History {
  constructor (router) {
    // 调用父类构造函数
    super(router)
    // 确保首次访问的时候，路径中有 #
    ensureSlash()
  }

  // 获取当前路由地址
  getCurrentLocation () {
    return window.location.hash.substr(1)
  }

  // 监听Hash变化事件
  setUpListener () {
    window.addEventListener('hashchange', () => {
      // hash变化 调用transitionTo() 加载相应组件
      this.transitionTo(this.getCurrentLocation())
    })
  }
}

function ensureSlash () {
  // 判断hash路径中是否有值
  if (window.location.hash) {
    return
  }
  // 如果没有值 则初始化为 '#/'  '/'会自动加 #
  window.location.hash = '/'
}
